package com.example.utils;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class GsonUtil {
    private static final Gson gson = new Gson();

    // List<String> 转 JSON 字符串
    public static String listToJson(List<String> list) {
        return gson.toJson(list);
    }

    // JSON 字符串转 List<String>
    public static List<String> jsonToList(String json) {
        Type listType = new TypeToken<List<String>>() {}.getType();
        return gson.fromJson(json, listType);
    }

    /**
     * 将字符串转化为列表
     *
     * @param str
     * @return
     */
    public static List<String> strToList(String str) {
        // 去掉首尾的方括号
        if (str.startsWith("[") && str.endsWith("]")) {
            str = str.substring(1, str.length() - 1);
        }

        // 使用逗号分隔字符串
        String[] elements = str.split(", ");

        // 将数组转换为List
        List<String> list = new ArrayList<>(Arrays.asList(elements));

        // 打印结果
        return list;
    }
}
